package br.com.localab.ambiente.controlador;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.hibernate.Session;

import br.com.localab.ambiente.modelo.Ambiente;
import br.com.localab.ambiente.modelo.Ambiente_PK;
import br.com.localab.bloco.modelo.Bloco;
import br.com.localab.fachada.Fachada;
import br.com.localab.tipoAmbiente.modelo.TipoAmbiente;
import br.com.localab.util.autenticar.FacesContextUtil;


@ManagedBean
@ViewScoped
public class CadastroAmbienteMB implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private String nome;	
	private String descricao;
	private List<Bloco> listaDeBloco;
	private List<TipoAmbiente> listaDeTipoAmbientes;
	private TipoAmbiente tipoAmbiente;
	private Ambiente_PK pk;
	private Bloco bloco;
	private String codigoBloco;
	private String codigoTipoAmbiente;
	private Fachada fachada;
	private Session s;

	public CadastroAmbienteMB() {
		// TODO Auto-generated constructor stub
		s = FacesContextUtil.getRequestSession();
		fachada = new Fachada(s);
		listaDeBloco = fachada.blocoListar("ativo", true);
	}

	public void cadastrar(){
		s = FacesContextUtil.getRequestSession();
		fachada = new Fachada(s);
		Ambiente ambiente = new Ambiente();
		String mensagem;
		ambiente.setAtivo(true);
		ambiente.setDescricao(descricao);
		pk = new Ambiente_PK();
		pk.setNome(nome);
		bloco = fachada.blocoProcurar(Long.parseLong(codigoBloco));
		pk.setBloco(bloco);
		tipoAmbiente = fachada.tipoAmbienteProcurar(Long.parseLong(codigoTipoAmbiente));
		pk.setTipoAmbiente(tipoAmbiente);
		ambiente.setAmbiente_PK(pk);
		mensagem = fachada.ambienteCadastrar(ambiente);
		FacesContextUtil.setMessageInformacao("info", mensagem);
		limpar();
	}
	
	public void carregarTipoDeAmbiente(){
		if(codigoBloco != null || !codigoBloco.equals("")){
		s = FacesContextUtil.getRequestSession();
		fachada = new Fachada(s);
		listaDeTipoAmbientes = fachada.tipoAmbienteListar("ativo", true,"bloco.codigo", Long.parseLong(codigoBloco));
		}
	}
	
	
	public void limpar(){
	nome = "";
	descricao = "";
	codigoBloco ="";
	codigoTipoAmbiente = "";
	bloco = new Bloco();
	tipoAmbiente = new TipoAmbiente();
	}
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public List<Bloco> getListaDeBloco() {
		return listaDeBloco;
	}

	public void setListaDeBloco(List<Bloco> listaDeBloco) {
		this.listaDeBloco = listaDeBloco;
	}

	public List<TipoAmbiente> getListaDeTipoAmbientes() {
		return listaDeTipoAmbientes;
	}

	public void setListaDeTipoAmbientes(List<TipoAmbiente> listaDeTipoAmbientes) {
		this.listaDeTipoAmbientes = listaDeTipoAmbientes;
	}

	public String getCodigoBloco() {
		return codigoBloco;
	}

	public void setCodigoBloco(String codigoBloco) {
		this.codigoBloco = codigoBloco;
	}

	public String getCodigoTipoAmbiente() {
		return codigoTipoAmbiente;
	}

	public void setCodigoTipoAmbiente(String codigoTipoAmbiente) {
		this.codigoTipoAmbiente = codigoTipoAmbiente;
	}
	
}
